package com.example.fourtestapp.utils;

import android.content.Intent;

import androidx.annotation.Nullable;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegUtils {
    /**
     * 检查输入的数字是否符合设置的长度  数字为正整数
     *
     * @param value 输入的数字
     * @param min   最小值  正整数
     * @param max   最大值  正整数
     * @return
     */
    public static Boolean Check(String value, int min, int max) {
        String pattern = "^\\+?[1-9][0-9]*$";
        Pattern r = Pattern.compile(pattern);
        Matcher m = r.matcher(value);
        if (m.matches()) {
            int num = Integer.parseInt(value);
            if (num > min && num < max) {
                return true;
            } else {
                return false;
            }
        } else {
            return false;
        }
    }


    /**
     * 检查ip地址
     *
     * @param value 传入的值
     * @return
     */
    public static Boolean Check(String value) {
        String rexp = "^[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}$";

        // 创建 Pattern 对象
        Pattern pat = Pattern.compile(rexp);
        return  pat.matcher(value).find();
    }

    /**
     * 检查端口是否合法
     *
     * @param value 传入值
     * @param port  标识，可无
     * @return
     */
    public static Boolean Check(String value, @Nullable String port) {
        String pattern = "^\\d{1,5}$";
        Pattern r = Pattern.compile(pattern);
        Matcher m = r.matcher(value);
        if (m.matches()) {
            int max = 65536;
            if (max < Integer.parseInt(value)) {
                return false;
            } else {
                return true;
            }
        } else {
            return false;
        }
    }

    /**
     * 检查输入的字符串是否符合长度  是否是数字+字符串类型
     *
     * @param value 输入的字符串
     * @param min   最小位
     * @param max   最大位
     * @param nue   可有可无
     * @return
     */
    public static Boolean Check(String value, int min, int max, @Nullable String nue) {
        String pattern = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{" + min + "," + max + "}$";
        Pattern r = Pattern.compile(pattern);
        Matcher m = r.matcher(value);
        return m.matches();
    }


}
